home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / hiz / 09 / 09.exe / adynware.exe / perl / lib / site / DBD / ODBC.pm < prev    next >
Encoding:
Text File  |  1999-12-28  |  1.8 KB  |  105 lines

  1.  
  2. require 5.004;
  3. {
  4.     package DBD::ODBC;
  5.  
  6.     use DBI ();
  7.     use DynaLoader ();
  8.  
  9.     @ISA = qw(DynaLoader);
  10.  
  11.     $VERSION = '0.16';
  12.     my $Revision = substr(q$Revision: 1.6 $, 10);
  13.  
  14.     require_version DBI 0.86;
  15.  
  16.     bootstrap DBD::ODBC $VERSION;
  17.  
  18.     $err = 0;        # holds error code   for DBI::err
  19.     $errstr = "";    # holds error string for DBI::errstr
  20.     $sqlstate = "00000";
  21.     $drh = undef;    # holds driver handle once initialised
  22.  
  23.     sub driver{
  24.     return $drh if $drh;
  25.     my($class, $attr) = @_;
  26.  
  27.     $class .= "::dr";
  28.  
  29.  
  30.     $drh = DBI::_new_drh($class, {
  31.         'Name' => 'ODBC',
  32.         'Version' => $VERSION,
  33.         'Err'    => \$DBD::ODBC::err,
  34.         'Errstr' => \$DBD::ODBC::errstr,
  35.         'State' => \$DBD::ODBC::sqlstate,
  36.         'Attribution' => 'ODBC DBD by Jeff Urlwin',
  37.         });
  38.  
  39.     $drh;
  40.     }
  41.  
  42.     1;
  43. }
  44.  
  45.  
  46. {   package DBD::ODBC::dr; # ====== DRIVER ======
  47.     use strict;
  48.  
  49.     sub connect {
  50.     my $drh = shift;
  51.     my($dbname, $user, $auth)= @_;
  52.  
  53.     my $this = DBI::_new_dbh($drh, {
  54.         'Name' => $dbname,
  55.         'USER' => $user, 
  56.         'CURRENT_USER' => $user,
  57.         });
  58.  
  59.  
  60.     DBD::ODBC::db::_login($this, $dbname, $user, $auth) or return undef;
  61.  
  62.     $this;
  63.     }
  64.  
  65. }
  66.  
  67.  
  68. {   package DBD::ODBC::db; # ====== DATABASE ======
  69.     use strict;
  70.  
  71.     sub prepare {
  72.     my($dbh, $statement, @attribs)= @_;
  73.  
  74.     my $sth = DBI::_new_sth($dbh, {
  75.         'Statement' => $statement,
  76.         });
  77.  
  78.  
  79.     DBD::ODBC::st::_prepare($sth, $statement, @attribs)
  80.         or return undef;
  81.  
  82.     $sth;
  83.     }
  84.  
  85.     sub tables {
  86.     my($dbh) = @_;        # XXX add qualification
  87.  
  88.     my $sth = DBI::_new_sth($dbh, { 'Statement' => "SQLTables" });
  89.  
  90.     DBD::ODBC::st::_tables($dbh,$sth, "")
  91.         or return undef;
  92.  
  93.     $sth;
  94.     }
  95.  
  96. }
  97.  
  98.  
  99. {   package DBD::ODBC::st; # ====== STATEMENT ======
  100.     use strict;
  101.  
  102. }
  103. 1;
  104. __END__
  105.